package com.winai.launcher.utils;

import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;

import com.ks.projectbasictools.utils.LogUtils;
import com.winai.launcher.base.db.DB_Common;
import com.winai.launcher.constant.Constant;

public
class NotifyReceiverUtils {

    /**
     * @date 2020/9/29
     * @desc 禁止或允许下拉状态栏
     */
    public static void notifyPulldownReceiver(Context mContext, boolean enable) {
        //正在升级，禁止下拉状态栏
        if (Constant.upgrading && enable) {
            return;
        }
        //引导未完成，禁止下拉状态栏
        DB_Common dbCommon = new DB_Common(mContext);
        String isFirst = dbCommon.get("isFirstOpenApp");
        String isBind = dbCommon.get("isBind");
        if (TextUtils.isEmpty(isFirst) && enable) {
            LogUtils.d("用户未引导完成，拦截允许下拉栏行为");
            return;
        }
        if ((TextUtils.isEmpty(isBind) || isBind.equals("false")) && enable) {
            LogUtils.d("用户未登录，拦截允许下拉栏行为");
            return;
        }
        LogUtils.d("通知系统 修改下拉状态栏为：" + enable);
        Intent intent = new Intent();
        intent.setAction(Constant.RECEIVER_ACTION);
        intent.putExtra("enable", enable);
        mContext.sendBroadcast(intent);
    }

    /**
     * @date 2020/12/07
     * @desc 通知SystemLauncher启动了
     */
    public static void notifyLauncherStart(Context mContext) {
        LogUtils.d("通知系统 Launcher启动完成");
        Intent intent = new Intent();
        intent.setAction(Constant.RECEIVER_LAUNCHER_START);
        mContext.sendBroadcast(intent);
    }

    /**
     * 说明：广播通知System,系统升级
     */
    public static synchronized void notifySystemUpgrade(Context mContext, String path) {
        LogUtils.d("通知系统 版本下载完成，开始版本升级");
        Intent intent = new Intent();
        intent.setAction(Constant.ACTION_UPGRADE);
        intent.putExtra(Constant.EXTRA_UPGRADE_PATH, path);
        mContext.sendBroadcast(intent);
    }

    /**
     * @date 2020/12/24
     * @desc 控制QQ音乐
     */
    public static void notifyControlQQMusic(Context context, String command, String data) {
        Intent intent = new Intent();
        intent.setAction(Constant.ACTION_PLAY_QQMUSIC_CONTROL_COMMAND);
        intent.putExtra("command", command);
        intent.putExtra("data", data);
        context.sendBroadcast(intent);
    }

    /**
     * @date 2020/9/17
     * @desc 通知ai 设置是否允许唤醒IP形象
     */
    public static void notifyToggleWakeUpReceiver(Context mContext, boolean enable) {
        //引导未完成，禁止下拉状态栏
        DB_Common dbCommon = new DB_Common(mContext);
        String isFirst = dbCommon.get("isFirstOpenApp");
        String isBind = dbCommon.get("isBind");
        if (TextUtils.isEmpty(isFirst) && enable) {
            LogUtils.d("用户未引导完成，拦截允许唤醒行为");
            return;
        }
        if ((TextUtils.isEmpty(isBind) || isBind.equals("false")) && enable) {
            LogUtils.d("用户未登录，拦截允许唤醒行为");
            return;
        }
        LogUtils.d("通知AI 是否允许唤醒：" + enable);
        Intent intent = new Intent();
        intent.setAction(Constant.ACTION_TOGGLE_WAKEUP);
        intent.putExtra("enable", enable ? "enable" : "disable");
        mContext.sendBroadcast(intent);
    }

    /**
     * @date 2020/12/09
     * @desc 通知ai 艾益生登陆成功
     */
    public static void notifyAiyishengLogin(Context mContext) {
        LogUtils.d("通知AI 艾益生登陆成功");
        Intent intent = new Intent();
        intent.setAction(Constant.action_aiyisheng_login);
        mContext.sendBroadcast(intent);
    }

    /**
     * @param hasNetwork true:网络连接；false:网络断开
     * @date 2020/12/24
     * @desc 网络连接状态改变
     */
    public static void notifyNetworkChanged(Context context, boolean hasNetwork) {
        Intent intent = new Intent();
        intent.setAction(Constant.ACTION_NETWORK_STATE_CHANGED);
        intent.putExtra("hasNetwork", hasNetwork);
        context.sendBroadcast(intent);
    }

    /**
     * @date 2020/12/24
     * @desc 用户信息改变，显示或隐藏销售培训
     */
    public static void notifyUserInfo(Context context) {
        Intent intent = new Intent();
        intent.setAction(Constant.ACTION_USER_INFO_Launcher);
        context.sendBroadcast(intent);
    }
}
